//go:build wireinject
// +build wireinject

package main

import (
	"gitee.com/Frozentear/layout/internal/conf"
	"gitee.com/Frozentear/layout/internal/dao"
	"gitee.com/Frozentear/layout/internal/interface/grpc"
	"gitee.com/Frozentear/layout/internal/interface/http"
	"gitee.com/Frozentear/layout/internal/service"
	"github.com/go-kratos/kratos/v2"
	"github.com/go-kratos/kratos/v2/log"
	"github.com/google/wire"
)

func initApp(log.Logger, *conf.Server, *conf.Data, *conf.Registry) (*kratos.App, func(), error) {
	panic(wire.Build(
		newApp,
		http.ProviderHTTP,
		grpc.ProviderGRPC,
		service.ProviderService,
		dao.ProviderDao,
	))
}
